package com.authine.cloudpivot.web.api.secondopen.service;

import com.authine.cloudpivot.web.api.secondopen.modules.CompanyVO;
import com.authine.cloudpivot.web.api.secondopen.vo.*;

import java.util.List;
import java.util.Map;

/**
 * @Author: brookpeng
 * @Date: 2021/9/15 13:31
 */
public interface PortalService {

    /**
     * 获取会议室信息
     * @param userId
     * @return
     */
    public Map<String,List<MeetingInfoVO>> getMeetingRoomInfo(String userId, String date, String tableName, String sourceId, String tableName2, String companyId , Boolean thismonth, Boolean thisweek, String meetroom);

    /**
     * 当前选择会议室占用时间查询
     * @param meetingRoomName
     * @return
     */
    public List<String> getSelectedMeetingRoomSchedules(String meetingRoomName);

    /**
     * 会议时间占用check
     * @param meetingRoomName
     * @param startTime
     * @param endTime
     * @return
     */
    public String checkMeetingTimes(String meetingRoomName, String startTime, String endTime);

    /**
     * 用户会议计划获取
     * @param userId
     * @param tableName
     * @return
     */
    public List<MeetingSchedulesVO> getUserMeetingSchedules(String userId, String tableName);

    /**
     * 文件管理列表获取
     * @return
     */
    public List<FileTreeVO> getUserFileTreeService(String userId, String key);

    /**
     * 文件获取
     * @return
     */
    public List<FileVO> getUserFileNameService(String userId, String key);

    /**
     * 文件获取模糊查询
     * @param userId
     * @param fileName
     * @param searchTimeFrom
     * @param searchTimeTo
     * @param type 1=文档; 2=会议纪要
     * @return
     */
    public List<FileVO> getUserFileNameLikeService(String userId, String fileName, String searchTimeFrom, String searchTimeTo, String type);

    /**
     * 会议纪要列表获取
     * @return
     */
    public List<FileTreeVO> getHYJYTreeService(String userId);

    /**
     * 会议纪要获取
     * @return
     */
    public List<FileVO> getHYJYNameService(String userId, String key);

    /**
     * 根据登录用户公司别获取会议室
     * @param userId
     * @return
     */
    public List<MeetingRoomVO> getMeetingRoomsByLoginUserDepartments(String userId, String tableName, boolean isAdministrator);

    /**
     * 获取登录用户可选则的公司列表
     * @return
     */
    public List<CompanyVO> getCompanyListByLoginUserRole(boolean isAdministrator, String userId);

    /**
     * 根据公司id获取会议室列表
     * @param companyId
     */
    List<Map<String, Object>> getListMeetingRoomByCompanyId(String companyId);
}
